package com.southminority.ethnic.controller.research.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 科研项目VO类
 * 用于前端数据展示
 * 
 * @author SouthMinority
 */
@Data
@Schema(description = "科研项目视图对象")
public class ResearchProjectVO {

    @Schema(description = "科研项目ID", example = "1")
    private Long id;

    @Schema(description = "项目标题", example = "南方少数民族语言智能分析与保护研究")
    private String title;

    @Schema(description = "项目编号", example = "NSFC-2023-001")
    private String projectNumber;

    @Schema(description = "项目类型", example = "ongoing", allowableValues = {"ongoing", "completed", "planning"})
    private String projectType;

    @Schema(description = "项目级别", example = "国家级")
    private String level;

    @Schema(description = "归属机构ID", example = "1")
    private Long organizationId;

    @Schema(description = "资助机构", example = "国家社科基金重大项目")
    private String fundingOrganization;

    @Schema(description = "资助金额", example = "80万元")
    private String fundingAmount;

    @Schema(description = "开始年份", example = "2023")
    private Integer startYear;

    @Schema(description = "结束年份", example = "2025")
    private Integer endYear;

    @Schema(description = "开始日期", example = "2023-01-01")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate startDate;

    @Schema(description = "结束日期", example = "2025-12-31")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate endDate;

    @Schema(description = "项目负责人", example = "刘笑玲")
    private String principalInvestigator;

    @Schema(description = "项目描述", example = "本项目旨在利用人工智能技术对南方少数民族语言进行系统性分析和数字化保护...")
    private String description;

    @Schema(description = "项目目标", example = "建立南方少数民族语言智能分析平台，实现语言的自动识别、转写和翻译")
    private String objectives;

    @Schema(description = "研究内容", example = "研究苗语、布依语、侗语等南方少数民族语言的智能处理技术")
    private String researchContent;

    @Schema(description = "项目成员列表")
    private List<String> members;

    @Schema(description = "主要成果列表")
    private List<String> outcomes;

    @Schema(description = "取得成就", example = "在语音识别准确率方面取得重大突破")
    private String achievements;

    @Schema(description = "发表论文列表")
    private List<String> publications;

    @Schema(description = "关键词", example = "少数民族语言,人工智能,语言保护")
    private String keywords;

    @Schema(description = "项目封面图片URL", example = "http://example.com/cover.jpg")
    private String coverImage;

    @Schema(description = "附件文件URL列表")
    private List<String> attachmentUrls;

    @Schema(description = "项目进度百分比", example = "85")
    private Integer progressPercentage;

    @Schema(description = "排序值", example = "1")
    private Integer sortOrder;

    @Schema(description = "是否重点项目", example = "1", allowableValues = {"1", "0"})
    private Integer isFeatured;

    @Schema(description = "状态: 1-启用, 0-禁用, -1-已删除", example = "1", allowableValues = {"1", "0", "-1"})
    private Integer status;

    @Schema(description = "创建时间", example = "2023-01-01T10:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @Schema(description = "更新时间", example = "2023-01-01T10:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}
